package com.loctek.importexport.mvp.acitvity;

import android.support.annotation.IdRes;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.KeyEvent;

import com.loctek.importexport.R;
import com.loctek.importexport.base.BaseActivity;
import com.loctek.importexport.base.BasePresenter;
import com.loctek.importexport.base.BaseView;
import com.loctek.importexport.mvp.fragment.HomeFragment;
import com.loctek.importexport.util.ToastUtils;

/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃  神兽保佑
 * 　　　　┃　　　┃  代码无bug
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━感觉萌萌哒━━━━━━
 * <p>
 * 作者：司海林
 * 邮箱：sihailin@sina.cn
 * 时间：2017/9/7
 * 描述：
 */
public class MainActivity extends BaseActivity<BaseView, BasePresenter<BaseView>> {

    HomeFragment studyFragment;

    @Override
    protected int attachLayoutRes() {
        return R.layout.activity_main_home;
    }

    @Override
    protected void initInjector() {

    }

    @Override
    protected void initViews() {
        showStudyFragment();
    }

    @Override
    protected void updateViews(boolean isRefresh) {

    }

    @NonNull
    @Override
    public BasePresenter createPresenter() {
        return new BasePresenter(getApp());
    }

    @Override
    protected boolean showToolbar() {
        return false;
    }


    public void showStudyFragment() {
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

        hideAllFragment(fragmentTransaction);
        if (studyFragment == null) {
            studyFragment = new HomeFragment();
            fragmentTransaction.add(R.id.fragmentContent, studyFragment);
        }

        commitShowFragment(fragmentTransaction, studyFragment);

    }


    public void commitShowFragment(FragmentTransaction fragmentTransaction, Fragment fragment) {
        fragmentTransaction.show(fragment);
        fragmentTransaction.commit();
    }

    public void hideAllFragment(FragmentTransaction fragmentTransaction) {
        hideFragment(fragmentTransaction, studyFragment);

    }

    private void hideFragment(FragmentTransaction fragmentTransaction, Fragment fragment) {
        if (fragment != null) {
            fragmentTransaction.hide(fragment);
        }
    }

    public void replaceFragment(@IdRes int id, Fragment fragment) {

        getSupportFragmentManager().beginTransaction().replace(id, fragment).commit();
    }


    //--------------使用onKeyUp()干掉他--------------

    //记录用户首次点击返回键的时间
    private long firstTime = 0;

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                long secondTime = System.currentTimeMillis();
                if (secondTime - firstTime > 2000) {
                    ToastUtils.showToast(getResources().getString(R.string.more_exit));
                    firstTime = secondTime;
                    return true;
                } else {
                    System.exit(0);
                }
                break;
        }
        return super.onKeyUp(keyCode, event);
    }


}
